home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Workspace / Locus / Source / FolderController.h < prev    next >
Text File  |  1995-06-12  |  3KB  |  146 lines

  1.  
  2. /*
  3.     Copyright 1993  Jeremy Slade.
  4.  
  5.     You are free to use all or any parts of the Locus project
  6.     however you wish, just give credit where credit is due.
  7.     The author (Jeremy Slade) shall not be held responsible
  8.     for any damages that result out of use or misuse of any
  9.     part of this project.
  10.  
  11. */
  12.  
  13. /*
  14.     Project: Locus
  15.     
  16.     Class: FolderController
  17.     
  18.     Description:
  19.     
  20.     The FolderController class is responsible for keeping tracking of and managing all open Folders.  It also provides the channel through which actions are directed to the Folders.  This means that all(most) menu items are connected to the FolderController, and it is responsible for forwarding these messages to the proper Folder -- in most cases the Key Folder.
  21.     
  22.     Original Author: Jeremy Slade
  23.     
  24.     Revision History:
  25.         Created
  26.             V.101    JGS Tue Feb  2 19:28:05 GMT-0700 1993
  27. */
  28.  
  29.  
  30. #ifndef FolderController_h
  31. #define FolderController_h
  32.  
  33. #define FolderController_VERSION    (101)
  34.  
  35. #import <objc/Object.h>
  36. #import <appkit/graphics.h>
  37. #import "Dragging.h"
  38. #import "Folder.h"
  39.  
  40.  
  41. @interface FolderController : Object
  42.     < DragDelegate >
  43. {
  44.     BOOL isSetup;
  45.     
  46.     id    folderList;
  47.     Folder    *keyFolder;
  48.     id    itemPboard;
  49.  
  50.     id    menu_SaveFolder;
  51.     id    menu_SaveFolderAs;
  52.     id    menu_SaveAll;
  53.     id    menu_RevertFolder;
  54.     id    menu_NewGroup;
  55.     id    menu_DeleteGroup;
  56.     id    menu_LaunchGroup;
  57.     id    menu_SortGroup;
  58.     id    menu_CleanGroup;
  59.     id    menu_DynamicUpdate;
  60.     id    menu_AddItem;
  61.     id    menu_LaunchItem;
  62.     id    menu_DeleteItem;
  63.     id    menu_HideOnDeactivate;
  64.     
  65.     id    dragDest;
  66. }
  67.  
  68. // Creating, initializing
  69. + initialize;
  70. - init;
  71. - free;
  72.  
  73. // Activating
  74. - setup;
  75. - (BOOL)cleanup;
  76. - active:sender;
  77. - inactive:sender;
  78. - doAutoLaunch:sender;
  79.  
  80. // File operations
  81. - (const char *)resolvePathForFolder:(const char *)path;
  82. - (const char *)relativePathForFolder:(const char *)path;
  83. - readFolderFromPath:(const char *)path;
  84. - writeFolder:aFolder;
  85. - openFolder:(const char *)path;
  86. - openFolderFromOpenPanel:sender;
  87. - newFolder:sender;
  88. - saveKeyFolder:sender;
  89. - saveKeyFolderAs:sender;
  90. - saveAllFolders:sender;
  91. - revertKeyFolder:sender;
  92.  
  93. // Folders
  94. - keyFolder;
  95. - (BOOL)addFolder:aFolder;
  96. - saveFolder:aFolder;
  97. - saveFolderAs:aFolder;
  98. - removeFolder:aFolder;
  99. - replaceFolder:aFolder with:newFolder;
  100. - makeKeyFolder:sender;
  101. - folderWithFilename:(const char *)path;
  102. - folderWithViewerNum:(int)winNum;
  103. - (BOOL)folderLoaded:(const char *)path;
  104.  
  105. // Groups
  106. - newGroup:sender;
  107. - deleteCurrentGroup:sender;
  108. - launchCurrentGroup:sender;
  109. - explicitSortItems:sender;
  110. - cleanUpCurrentGroup:sender;
  111. - dynamicUpdateCurrentGroup:sender;
  112.  
  113. // Items
  114. - runAddPanel:sender;
  115. - launchItems:sender;
  116. - removeItems:sender;
  117.  
  118. // Edit methods
  119. - cut:sender;
  120. - copy:sender;
  121. - paste:sender;
  122. - selectAll:sender;
  123.  
  124. // Tools
  125. - showInspector:sender;
  126. - toggleHideOnDeactivate:sender;
  127.  
  128. // DragDelegate Protocol
  129. - setDragDest:object;
  130. - dragDest;
  131. - (NXDragOperation)draggingEntered:(id <NXDraggingInfo>)sender;
  132. - (NXDragOperation)draggingUpdated:(id <NXDraggingInfo>)sender;
  133. - draggingExited:(id <NXDraggingInfo>)sender;
  134. - (BOOL)prepareForDragOperation:(id <NXDraggingInfo>)sender;
  135. - (BOOL)performDragOperation:(id <NXDraggingInfo>)sender;
  136. - concludeDragOperation:(id <NXDraggingInfo>)sender;
  137.  
  138. // Misc
  139. - updateMenu:sender;
  140. - updateDisplay;
  141. - updateDisplay:sender;
  142.  
  143. @end
  144.  
  145. #endif // FolderController_h
  146.